FIG. 1 shows a typical scenario as may be present in the AAL1 pointer prediction in STM-1/AU-4 circuit emulation as reflected in the aforementioned ITU-T document “series I: integrated services digital network, B-ISDN ATM adaption layer specification: type 1 AAL.
In FIG. 1 a plurality of data frames DF are generated on a transmitter side A and a plurality of successive data frames DF are received on a receiver side B. As far as the transmitter A and the receiver B are concerned, the data frames DF are circuit-switched data frames DF generated in accordance with some circuit-switched protocol, e.g. a TDMA method.
However, through the communication system SYS the data frames DF are not routed along a single point-to-point connection. As shown in FIG. 1, advantageously an ATM routing network RN as is well-known in this art is used for routing individual cells CL from an input line IL to an output line OL. Within the routing network RN the cells are asynchronously transferred. For this purpose, a cell assembly device CAD on the transmission side and a cell reassembly device or a frame assembly device FAD is used on the reception side. The cell assembly device CAD successively generates cells CL and inserts sequentially data units (octets) from the data frames DF to the successive cells CL. The cells CL are then routed through the ATM routing network RN asynchronously and on the reception side the data units of the cells CL are again reassembled by the frame assembly device FAD into the sequential data frames. As shown in FIG. 1, the cells CL are organized as sequential cell blocks CB each with a predetermined number of cells CL.
In order to build such a communication system SYS as in FIG. 1, where the circuit-switched frames DF are routed as cells through the ATM routing network RN, the ATM adaption layer (AAL) enhances the service provided by the ATM layer to support functions provided by the next higher layer. The AAL performs functions required by a user, control and management planes and supports the mapping between the ATM layer and the next higher layer. As explained in the aforementioned ITU-T document I.363.1 (08/96), there are interactions between the AAL type 1 and the next higher layer and the AAL type 1 and the ATM layer, as well as AAL type 1 peer-to-peer operations. The different combinations of SAR (segmentation and reassembly) sub-layer and CSs (convergence sub-layers) provide different service access points (SAPs) to the layer above the AAL. It is the SAR sub-layer, which takes care of the cell assembly and cell reassembly in the devices CAD and FAD as shown in FIG. 1.
A typical data frame DF which is reassembled by the frame assembly device FAD and from which data units DU are extracted by the cell assembly device CAD on the transmission side, is shown in FIGS. 2a, 2b. The example in FIG. 2a is an SDH/SONNET frame (STM-1/STS-3) (SDH: Synchronous Digital Hierarchy (Europe); SONET: Synchronous Optical NET Work (USA); STM-1: Synchronous Transfer Mode level 1 (Europe); STS-3: Synchronous Tributary Signal level 3 (USA)). This type of frame consists of 9 rows by 270 octets, i.e. 2430 octets. The octets will hereinafter be referred to as data units DU. The nine first columns consists of an SOH (Section OverHead) and a pointer PTR. The pointer PTR is used to find the beginning of payload within the SDH/SONNET frame (this pointer has nothing to do with the ATM AAL1 pointers). The part of the frame that is transferred over the ATM routing network RN in FIG. 1 is the complete data units and the pointer PTR excluding the SOH parts.
Therefore, what is really transferred over the ATM routing network RN is in principle shown in FIG. 2b. That is, what remains after removing the SOH is called an AU-4 (Administrative Unit Level 4) frame. Since the pointer PTR sent together with the payload is of no importance here it will not be referred to separately below. However, as shown in FIG. 2b, the data frame DF contains NF data units DU sequentially arranged at storage positions SP of the data frame DF. If the data frame DF is a AU-4 frame, the size of this frame is 2358 octets (261*9+9). Now, the task is to map the AU-4 frame into ATM AAL1 cells. From here onwards this payload can be seen as a stream of 2358 octets or data units sequentially stored for example row-wise in the data frame DF. As soon as one data frame AU-4 finishes, a new data frame AU-4 starts.
A typical structure of the ATM cells CL is shown in FIGS. 3a, 3b, 3c. As shown in FIG. 3a, the ATM cell comprises a cell header CH, a sequence number field SN indicating the position of the cell CL in the cell block CB and a data portion DP having a number of data units DU. Typically, the data portion comprises 47 octets and the sequence number field SN comprises 1 octet separated in 4 bits for the sequence number field SN and 4 bits for the sequence number protection (SNP) field. Thus, one can say that generally the cells CL comprise a cell header CH and a SAR-PDU data portion (SAR: segmentation and reassembly; PDU: packet data unit) which itself comprises a SAR/PDU header, and a payload portion.
FIG. 3b shows a typical first type cell FTC which, in the context of the AAL1 layer, is called a none-P format. It comprises the sequence number field SN indicating the position of the cell CL in the cell block CB and a first data portion FDP with the first number NDU1=47 data units DU.
FIG. 3c shows a typical second type cell STC which, in the context of the AAL1 layer, is called a P format cell. Typically, it comprises a sequence number field SN indicating the position of the second type cell CL in a cell block CB, a second data portion SDP with a second number NDU2=46 data units, and a so-called pointer value field PVF. As already indicated before, the pointer value field PVF includes at least a data frame delimiter pointer value PTR indicating a number PTR of sequential data units DU of at least the second data portion SDP to be written to a previous data frame DF before data units DU follow which are to be written to a current data frame DF. Depending on the position of the second type cell (the P format cell) in the cell block CB, the pointer value field PVF may also contain a dummy pointer value NP indicating that neither a start nor an end frame occurs in the data block CB in which the second type cell is included or a frame & block end pointer value (PVF=93) indicating that the end of the frame coincides with the end of the data block. In the AAL1 layer, the CSI bit in the 4 bit SN is always set to one to identify P-type cells (STC).
The pointer value field contains the binary value of the offset, measured in octets between the end of the pointer field and the first start of the structured cell block in the 93-octet payload consisting of the remaining 46 octets of this SAR-PDU payload and the 47 octets of the next SAR-PDU payload. This offset ranges, in AAL1, between 0 and 93 inclusive. The offset value 93 is used for the frame & block end pointer value to indicate that the end of the 93-octet payload coincides with the end of the structured block. Furthermore, the dummy pointer value 127 is used when no structure boundary is being indicated. Pointer values can be between 0 and 93, 93 is a pointer indicating that the end of the frame coincides with the end of the cell block, the dummy pointer value is 127 and values of 94-126 are not allowed. Second type cells STC with dummy pointers exist in every cell block CB (where no other STC occurs). The binary value of the offset is inserted right justified in the offset field, i.e. the least significant bit in the offset is transmitted last. The first bit of the pointer field is used to provide an even parity over the pointer field.
The second type cell is used exactly once every cycle (cell block), wherein a cycle is the sequence of 8 consecutive cells with sequence numbers SN 0 through 7. The second type cell is used at the first available opportunity in a cell block to point to a start of a structure boundary between two data frames. For second type cells SN must be even i.e. 0, 2, 4, 8. If neither a start of a structure boundary nor an end of structure boundary is present in a cycle, then the second type cell with the dummy offset value in the pointer field is used at the last opportunity in the cycle, i.e. in a SAR-PDU with a sequence number field value 6. If the above pointer rule is obeyed, the first cell block to be transmitted after the AAL connection is established uses the second type cell with a sequence count value in the SAR-PDU header equal to 0 and with the first octet of the structured data placed in the second octet of the SAR-PDU payload, in the AAL1 frame work of the ITU-T document referred to above.
A typical functional model of the SAR at the transmitting side (side A in FIG. 1) and typical functional model of the SAR at the receiving side (side B in FIG. 1) is shown in Fig. I.1/I.363.1 and Fig. I.2/I.363.1 of the aforementioned ITU-T document I.363.1.
FIGS. 4a-f show typical examples of the positioning of the second type cell (P-type cell) within the sequential cell blocks CB as generally explained above. Thus, FIGS. 4a-f show a complete sequence of cell blocks CB for the data frame DF and the cells respectively shown in FIG. 2 and FIG. 3. The cells schematically indicated in FIG. 1 at the input of the ATM routing network IL and at the output OL generally occur in the manner as shown in FIGS. 4a-f, i.e. there are made provisions within the ATM routing network RN (for example the usage of time stamps etc.) such that the order of the cells CL within the cell block CB and from cell block to cell block is preserved.
Therefore, what is shown in FIGS. 4a-f equally well applies to the transmitting side (input side of the routing network) and the receiving side (output side of the routing network).
In FIGS. 4a-f (and in other following schematic drawings) the reference numeral SN denotes the sequence number of the current cell within the cell block CB, PTR is the pointer value when applicable (it contains an offset to the start of the frame),PTR<93. NP is the dummy field pointer value (pointer value whose value is of no interest=127).
As shown in FIG. 4a, in the first cell block CB the first cell is the second type cell having a pointer value PTR=0. This indicates to the frame assembly device FAD that all the succeeding payload # 0-45 belongs to the current data frame DF. In total 46 data units (payload octets) can be contained in the first cell. That is, when the second type cell STC is received, the sequence number SN is read and the data frame delimiter pointer value PTR of the second type cell STC is also read. The data units from the second data portion SDP is read and are assigned to the first sequential storage positions SP of the current frame DF.
Successively the other eight cells (2nd cell to 8th cell) of the first cell block CB contain the payload data units (#46-92, #93-139, . . . , #328-374). Of course, since the complete frame contains 2358 data units, several more cell blocks CB must occur before the complete frame can be filled with data units from the successively arriving cells. For example, as shown in FIG. 4b, the second cell block CB does not need a data frame delimiter pointer value PTR because no new frame will start in this cell block. Therefore, e.g. the pointer value receives the value NP=127 and is inserted at the last-1 sequence number (SN=6) in the cell block. Therefore, if the conventions in accordance with AAL1 are obeyed, then the pointer value NP is again inserted in the payload portion and, therefore, the 15th cell only contains 46 payload data units #657-702.
This assignment of cell blocks and dummy pointer values NP is carried out until the cell block CB shown in FIG. 4c occurs. In FIG. 4c the actual transition from a previous data frame to a new data frame occurs. In particular, in the 51th cell all data units up to #2343 have been read and have been sequentially assigned to the sequential storage positions of the previous frame. The pointer value PTR=14 in the second type cell (51th cell) indicates that 14 data units #2344-2357 still belong to the previous frame before the next data units #0-31 are read and assigned to the next data frame. In the case of FIG. 4c, according to the conventions of AAL type 1 of ITU-T and as explained above, a second type cell is only contained in even sequence numbers (SN=2, SN=4, etc.). Therefore, if the end of the data frame (the last data units) happen to fall into an even sequence number SN, then the pointer value PTR will directly indicate in the second type cell how many data units belong to the previous frame and how many sequential data units belong to the next frame.
However, the end of the data frame (the last data units in the cells) may not coincide with a sequence number which is even. FIG. 4d shows in the N+4th cell the value of the pointer PTR=60, if the actual end of the data frame occurs in an odd numbered sequence field SN. It may be understood that even if the length of the data frame stays constant (in total 2358 data units), the end of data frames may alternately lie in odd and even sequence number fields SN, such that both cases must be catered for.
As shown in FIG. 4d, the actual end of the payload #2344-2357 is here assumed to occur in the sequence number SN=5. If the pointer was allowed to sit in odd numbered sequence fields SN, then of course the pointer would have the same value as in FIG. 4c. However, since according to AAL type 1 it cannot sit in odd numbered sequence fields, the pointer must be inserted on the cell before, i.e. in the N+4th cell having the sequence number SN=4. Now, the pointer value PTR=60, i.e. 14+46. The reason is that the pointer always indicates the number of sequential data units (even over more than one succeeding cell) which still need to be assigned to a current frame before data units follow for the next frame. First, 60 is a value which correctly reflects that still 46 data units of the P-type (second type) cell can be read from the N+4th cell and another remaining 14 data units must be read from the succeeding N+5th cell. Only then the #0-32 remaining octets of the N+5th cell will be assigned to the next frame. Second type cells STC including a dummy PTR are handled in exactly the same way as first type cells but with only 46 data units.
FIG. 4e shows another scenario where the end of the data frame coincides with the end of the last cell in a cell block CB. That is, the 2358-th data unit is in fact the last data unit at the last position of the N+7th cell, that is the new frame will start with sequence number SN=0 in the first succeeding cell (1st cell) shown in FIG. 4f. Therefore, in the last but one field the pointer value of PTR=93 is inserted. Therefore, the next 93 data units of the present N+6th cell and another 47 data units of the N+7th cell are sequentially read and the end of the cell N+7 is also the end of the last frame. In FIGS. 4a-f an arrow pointing to the right in a cell always indicates the beginning of a new frame, i.e. from the indicated position onwards data units will be assigned to a new frame.
As can be understood in particular from FIGS. 4a, 4c, 4d and 4e, as long as the pointer value field is present (i.e. it is not lost during transmission), there is no problem because the delimitation from one data frame to the next data frame is always correctly detectable by means of the pointer value PTR.
Therefore, if everything is fine, i.e. if no cell loss occurs, the frame assembly device FAD shown in FIG. 6a can carry out the cell assigning procedure shown in FIG. 6b. That is, the reception unit RC sequentially receives the cells CL and the reception unit RC is adapted to receive in particular a second type cell STC in step S1. This cell can e.g. be the 1st cell shown in FIG. 4a. In step S2 the pointer value PTR of the pointer value field PVF is determined and in step S3 the read unit RD will read from the second data portion DP the last NDU2−PTR data units (NDU2: total number of data units present in a second type cell). An assignment unit WR will in step S3 assign these read NDU2−PTR data units to the first NDU2−PTR sequential storage positions SP of the current data frame.
Thereafter, in steps S4, S5 and S6, if further first type cells FTC (e.g. the 2nd cell to the 50th cell in FIGS. 4a-c) are received, the assignment unit WR will sequentially assign the data read from the first data portion in step S5 to again sequential storage positions of the frame. Such a sequential storage can e.g. be row-by-row, i.e. the assigning or writing starts at the top left corner and goes to the right top corner of the frame and then again moves to the first column position of the next row.
If again in step S6 a second type cell STC is detected, e.g. the 51st cell shown in FIG. 4c, then again the pointer value PTR must be determined in order to detect how many of the data units contained in the 51st cell still belong to the current frame before the succeeding data frames are assigned to the next frame.
Thus, in accordance with the read/write procedure shown in FIG. 6b, the assignment unit WR shown in FIG. 6a assigns the respective data units DU to the sequential storage positions of the data frames DF generated by the data frame generator DFG.
The conventional frame assembly device FAD and the frame assembly method in FIG. 6b also take into account that accidentally some of the first type cells may get lost during the routing through the routing network RN. For this purpose, the frame assembly device FAD comprises a cell failure determination unit CFDU which sends out an alarm ALRM if a cell loss is detected. In ITU-T I.363.1 (AAL type 1) such an indication can be received from a so-called state machine. It may be noted that the alarm ALRM is not only indicating that in principle a cell is lost, but it will also indicate the sequence number SN at which the cell loss occurs.
For example, as shown in FIG. 5a, if an alarm signal ALRM is received at any time during the assignment procedure shown in FIG. 6b, e.g. before or during the step S4 (see the step S4′ in FIG. 6b), it is known at which position the cell loss has occurred. Despite the fact that of course the frame assembly device FAD cannot regenerate this data, it can at least indicate some alarm signal AIS (Alarm Indication Signal) at the sequential storage positions corresponding to the lost cell. For example, as shown in FIG. 5a, here it is assumed that a cell loss of a first type cell occurs in the last third of the cells and at the missing data unit storage positions dummy data units AIS are inserted. Whilst FIG. 5 shows only the insertion of AIS units if one cell is lost, it should be noted that also several consecutive cell losses can be handled.
Such a procedure of outputting an alarm which indicates the position of missing data units in the cell block and therefore also indicates storage positions at which it will not be possible to store data units, is in principle also applicable when a second type cell is missing, as shown in FIG. 5b. However, this is only the case if a dummy pointer value NP is missing. As explained above, a dummy pointer value NP is only inserted at the last sequential position in the cell block CB and therefore, if the sequence number SN=6 is indicated as missing by the alarm signal ALARM, then it is clear that only for the complete number of NDU2=46 units dummy data units should be inserted at the sequential storage positions corresponding to those of the last sequence number field SN. Therefore, when a dummy pointer cell is lost, the AIS dummy data units can still be inserted in the space where data from the lost cell should be present.
However, as shown in FIG. 5c, FIG. 5d, problems start when a pointer cell with a data frame delimiter pointer value PTR is lost. In FIG. 5c the actual second type cell N+4th is missing and therefore there is no information any longer as to how many data units in the current frame and/or the next frame must be replaced with dummy data units and in particular at which storage positions the insertion of dummy data units shall start. As shown in FIG. 5c, actually if the pointer value PTR=60 was known (somehow) and the data units were lost, then it would be possible to assign NDU2−PTR=60−46=14 data units to the sequential storage positions following those at which the last octet #2297 of the previous first type cell was stored. Since the next cell N+5 arrives intact, there is of course no reason to insert another 47 dummy data units because they are already known from the next cell.
However, without having any information of the pointer value PTR, it is not possible to insert dummy data units AIS at the appropriate positions. That is, the problem with loosing a second type cell is not the loosing of the data units, but that there is a far more severe problem in that the delimitation of the two frames with respect to their data units also gets lost. That is, since the pointer is lost, all information about the next data frame is lost unless there is the possibility to retrieve a pointer value somehow. However, since the state machine only indicates that the second type cell is missing, there is no further information available in the prior art, which allows to delimit the two data frames.
This case also occurs generally, as shown in FIG. 5d, where a pointer value PTR<46 is always indicating an overlapping of the data units of the second type cell in the previous and in the next frame. Also in this case, it is completely impossible to detect at which position the sequential storage of data units should continue once the next cell N+5 is received intact. That is, since the pointer value is lost, it cannot be derived where the starting of the right operation in the next frame DF′ starts.
Therefore, in case a pointer or dummy pointer cell has been lost, the stream of assembled STM-1/AU-4 frames will become too long and there is no possibility to resynchronise the procedure unless a next second type cell is received intact. Thus, it can happen, that at least one complete frame gets lost and all positions need to be written with dummy data units until the next second type cell arrives.
That the loss of a second type cell is indeed a severe problem in such circuits switched ATM emulations is also apparent from the prior art. For example, JP 090 557 46 A describes a phase jump prevention system for a DBR signal and in this system the phase jump is prevented by switching only a pointer value to a last frame value when a discarded cell includes a pointer. That is, here, the last pointer is stored in a front point holder and if the pointer of a CBR signal is pertaining to a lost cell, the pointer relating to dummy data in the front pointer holder is selected by a switch. That is, here it seems to be the case that a last held pointer is maintained and if problems with cell loss occurs, the last pointer is used. However, this is not a quite accurate method, because, as seen in FIG. 4c and FIG. 4d, the pointers may successively assume different values such that it can not be guaranteed that the last stored pointer is correct also for the next delimitation of two frames.